Spanish
Crear y configurar stack de tráfico externo público
Configuraremos el stack de Docker de tráfico público; configuraremos el cortafuegos para permitir los puertos necesarios; y levantaremos el stack a través de Arcane; haremos Port Forwarding de los puertos HTTP y HTTPS para Nginx; configuraremos Nginx para redireccionar el tráfico a los contenedores; y permitiremos a Nginx actuar como proxy de Home Assistant. El stack consiste de los siguientes contenedores:
- Nginx Proxy Manager: Motor y administrador de Reverse Proxy.
Pasos
Ejecutar:
./scripts/create_nginx_folder.shpara generar el directorio del contenedor en el SSD.Editar el archivo del stack:
nano ./files/public-traffic-stack.yml.Reemplazar
TZ=America/New_Yorkpor el huso horario de su sistema. Puede usar esta lista como referencia: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.Reemplazar
-subnet: fda6:80d8:cf96:1::/64con el CIDR que generó durante la instalación de docker usando la subnet1.Copiar todo el contenido del archivo al portapapeles. Guardar y salir con
Ctrl + X, Y, Enter.Ejecutar:
./scripts/public_traffic_firewalld_services.sh. Configura Firewalld para los contenedores. El script abre los puertos HTTP y HTTPS para Nginx.Agregar stack en Arcane desde el navegador.
- Acceder a Arcane a través de https://server.lan:3552.
- Darle clic en "Projects" en el menú izquierdo y crear un nuevo proyecto.
- Ponerle nombre "public-traffic" y pegar el contenido del public-traffic-stack.yml que copió al portapapeles y crear el stack. Desde ahora modificaciones al stack se deben de hacer a través de Arcane y no en el archivo.
Configurar el router. Si no desea exponer sus servicios al internet, brincar este paso. Cada router es diferente, así que tendrá que consultar su manual para poder hacer los pasos siguientes.
- Redireccionar el puerto (Port Forwarding) 80 y 443 en protocolo TCP al servidor para que Nginx pueda hacer reverse proxy a los servicios internos.
Configurar proxy hosts en Nginx usando el DDNS.
- Acceder a Nginx a través de http://server.lan:8181.
- Usar
admin@example.comychangemecomo usuario y contraseña y modificar los detalles y contraseña por una segura. Se recomienda nuevamente el uso de Bitwarden para lo mismo. - Navegar a la pestaña de
SSL Certificates. - Presionar
Add SSL Certificate. SeleccionarLet's Encryptcomo proveedor de certificados.- Configurar un certificado SSL de "dominio comodín" con Let's Encrypt. Por ejemplo
*.micasa.duckdns.org(note el*al principio del dominio). - Es necesario habilitar
Usar DNS Challenge. - Seleccionar DuckDNS como proveedor DNS.
- Reemplazar
your-duckdns-tokenpor el token que generó en DuckDNS.org - Aceptar los términos del servicio y guardar.
- Configurar un certificado SSL de "dominio comodín" con Let's Encrypt. Por ejemplo
- Navegar a la pestaña de "Access List" y configurar una lista de acceso privado.
- Presionar
Add Access List. - En la pestaña
Detailsllenar:- "Name": Private.
- "Pass Auth to Host": habilitado.
- En la pestaña
Accessllenar:- allow: 192.168.1.0/24. Usar el rango de IPs de su LAN si es diferente.
- allow: XXXX:XXXX:XXXX:1::/64. Donde "XXXX:XXXX:XXXX" es su prefijo ULA para IPv6 y ":1" es la subred "lan". Ignorar si no usa IPv6.
- allow: 10.13.13.0/24. Esta es para el acceso por la VPN de WireGuard.
- Darle clic en
Save.
- Presionar
- Navegar a la pestaña de "Proxy Hosts" y configurar todos los proxy host que necesitaremos. Por el momento, solo los servicios de Cockpit, Arcane y Nginx existen. Los demás los crearemos después.
- Por cada fila en la tabla de abajo, darle clic en
Add Proxy Hosty llenar los datos. Si no quiere compartir un servicio en el internet, puede usar el "Access List"Privateen vez dePublic. En la pestaña deSSLsiempre escoger*.micasa.duckdns.orgcreado en el paso 4 comoSSL certificatey habilitar todas las opciones.
- Por cada fila en la tabla de abajo, darle clic en
Servicio Domain Scheme Hostname Port Block Exploits Websockets Access List Advanced Bazarr bazarr.micasa.duckdns.org http bazarr 6767 activado activado Private N/A Beszel beszel.micasa.duckdns.org http beszel 8090 activado activado Private N/A Cockpit cockpit.micasa.duckdns.org https 172.21.0.1 9090 activado activado Private N/A ComfyUI comfyui.micasa.duckdns.org http comfyui 8188 activado activado Private N/A Arcane arcane.micasa.duckdns.org http arcane 3552 activado activado Private N/A Flaresolverr flaresolverr.micasa.duckdns.org http flaresolverr 8191 activado activado Private N/A Gotify gotify.micasa.duckdns.org http gotify 80 activado activado Public N/A Home Assistant homeassistant.micasa.duckdns.org http homeassistant 8123 activado activado Public N/A Jellyfin jellyfin.micasa.duckdns.org http jellyfin 8096 activado activado Public # Disable buffering when the nginx proxy gets very resource heavy upon streaming
proxy_buffering off;
# Proxy main Jellyfin traffic
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_headers_hash_max_size 2048;
proxy_headers_hash_bucket_size 128;
# Security / XSS Mitigation Headers
# NOTE: X-Frame-Options may cause issues with the webOS app
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "0";
add_header X-Content-Type-Options "nosniff";Nextcloud nextcloud.micasa.duckdns.org http nextcloud 80 activado activado Public client_body_buffer_size 512k;
proxy_read_timeout 86400s;
client_max_body_size 0;NPM nginx.micasa.duckdns.org http 127.0.0.1 81 activado activado Private N/A Ollama ollama.micasa.duckdns.org http ollama 11434 activado activado Private N/A Open WebUI openwebui.micasa.duckdns.org http openwebui 8080 activado activado Private N/A Profilarr profilarr.micasa.duckdns.org http profilarr 6868 activado activado Private N/A Prowlarr prowlarr.micasa.duckdns.org http prowlarr 9696 activado activado Private N/A qBittorrent qbittorrent.micasa.duckdns.org http qbittorrent 8080 activado activado Private N/A Radarr radarr.micasa.duckdns.org http radarr 7878 activado activado Private N/A Seerr seerr.micasa.duckdns.org http seerr 5055 activado activado Public N/A Sonarr sonarr.micasa.duckdns.org http sonarr 8989 activado activado Private N/A Z-Wave JS zwavejs.micasa.duckdns.org http zwavejs 8091 activado activado Private N/A Puede probar que Nginx funciona accediendo a si mismo a través del URL con su subdominio: https://nginx.micasa.duckdns.org. Inténtelo desde adentro de su red local para probar el "split horizon DNS" y desde afuera para probar el DDNS. Desde afuera, debería recibir un error
403 Forbidden.De regreso en Arcane, modificar el stack
public-trafficque acabamos de crear.- Debajo de
ports, borrar o comentar el mapeo8181:81. Ahora podemos accesarlo a través del dominio. - Darle clic en
Update the stack.
- Debajo de
Modificar el stack de Arcane:
nano /Apps/arcane-stack.yml.- Borrar o comentar la sección entera de
ports. Ahora podemos accesarlo a través del dominio. - Guardar y salir con
Ctrl + X, Y, Enter. - Actualizar el stack después de los cambios:
docker compose -f /Apps/arcane-stack.yml up -d.
- Borrar o comentar la sección entera de